1.首先安装python-software-properties

该程序将安装add-apt-repository的应用程序,更加方便的添加和使用PPA软件库。

1
2
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common apt-transport-https

2.安装java8

1
2
3
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install -y oracle-java8-installer

打印java的版本信息:

1
java -version

3.安装elastic

3.1:安装之前先添加elastic repository key 到server
1
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
3.2:找到当前的文档版本,导入当前的repository到sources.list.d:
1
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

4:安装elasticsearch

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:

分布式的实时文件存储,每个字段都被索引并可被搜索

分布式的实时分析搜索引擎

可以扩展到上百台服务器,处理PB级结构化或非结构化数据

而且,所有的这些功能被集成到一个服务里面,你的应用可以通过简单的RESTful API、各种语言的客户端甚至命令行与之交互

4.1:安装及修改配置文件
1
2
sudo apt-get update
sudo apt-get install -y elasticsearch

配置文件路径:/etc/elasticsearch/elasticsearch.yml

可以修改host,port….

4.2:加入开机自启动服务
1
2
3
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
4.3:通过system进行管理elasticsearch
1
2
3
4
5
6
7
systemctl status elasticsearch
systemctl start elasticsearch
systemctl stop elasticsearch
systemctl restart elasticsearch
4.4:查看运行情况

查看端口:

1
netstat -plntu

查看elasticsearch的cluster,版本..相关信息:

1
curl -XGET 'localhost:9200/?pretty'

查看集群健康情况:

1
curl 'localhost:9200/_cat/health?v'

查看集群中的节点列表:

1
curl 'localhost:9200/_cat/nodes?v'

查看index情况:

1
curl 'localhost:9200/_cat/indices?v'
4.4:参考文档

Elasticsearch: 权威指南

5:安装Kibana

Kibana是一个为Elasticsearch平台分析和可视化的开源平台,使用Kibana能够搜索、展示存储在Elasticsearch中的索引数据。使用它可以很方便用图表、表格、地图展示和分析数据。
Kibana能够轻松处理大量数据,通过浏览器接口能够轻松的创建和分享仪表盘,通过改变Elasticsearch查询时间,可以完成动态仪表盘。

5.1:通过apt安装及配置
1
sudo apt-get install -y kibana

配置文件路径:

1
/etc/kibana/kibana.yml

可以修改host,port,以及elasticsearch的url

5.2:加入开机自启动
1
2
sudo systemctl enable kibana
sudo systemctl start kibana
5.3:通过system进行管理kibana
1
2
3
4
5
6
7
systemctl status kibana
systemctl start kibana
systemctl stop kibana
systemctl restart kibana

6:安装Logstash

Logstash 是一个开源的数据收集引擎具有实时管道能力。

Logstash 可以动态的统一数据从不同的来源和使数据规范化到你选择的目的地。

当Logstash 起初驾驭创新到日志收集,它的功能很好的扩展超出使用案例。任何事件的类型可以被丰富和改变使用一个input,filter和输出引擎,使用很多的本地的代码简化了采集的过程。

6.1:通过apt安装
1
sudo apt-get install -y logstash
6.2:logstash的配置文件目录:
1
2
3
4
5
6
7
8
/etc/logstash/
├── conf.d
│   └── kafka-logs-local.conf
├── jvm.options
├── log4j2.properties
├── logstash.yml
└── startup.options

logstash.yml:

path.config:定义扫描input,filter,output的配置目录

path.logs: 定义log配置,在测试配置文件的时候有用。

input:kafka,output:elasticsearch的example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
input {
kafka {
topics_pattern => ["service-logs-.*"]
bootstrap_servers => "10.1.220.27:9092"
group_id => "local-logstash"
decorate_events => true
}
}
filter {
json {
source => "message"
}
mutate {
add_field => {
"kafka_topic" => "%{[@metadata][kafka][topic]}"
"kafka_consumer_group" => "%{[@metadata][kafka][consumer_group]}"
"kafka_partition" => "%{[@metadata][kafka][partition]}"
"kafka_offset" => "%{[@metadata][kafka][offset]}"
"kafka_timestamp" => "%{[@metadata][kafka][timestamp]}"
}
}
}
output {
if [level] == "ERROR" {
http {
url => "http://localhost:8088/send/mail"
http_method => "post"
automatic_retries => 0
connect_timeout => 6
keepalive => false
}
}
elasticsearch {
hosts => ["127.0.0.1:9200"]
action => "index"
index => "logstash-%{[kafka_topic]}"
}
}
6.3:加入开机自启动
1
2
sudo systemctl enable logstash
sudo systemctl start logstash
6.4:通过system进行管理logstash
1
2
3
4
5
6
7
systemctl status logstash
systemctl start logstash
systemctl stop logstash
systemctl restart logstash